/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tsb.dominio.dispositivos.coneccion;

import java.util.ArrayList;
import java.util.Iterator;
import tsb.dominio.excepciones.MACException;
import tsb.dominio.interfaces.IP;
import tsb.dominio.interfaces.InterfaceDeConeccion;
import tsb.dominio.interfaces.MAC;
import tsb.dominio.interfaces.RJ45FastEthernet;

/**
 *
 * @author Fede
 */
public class Switch extends DispositivoConeccion
{
    public Switch(int x, int y,String nombreAMostrar) throws MACException
    {
        this.x=x;
        this.y=y;
        this.nombreAMostrar=nombreAMostrar;
        this.interfaces = new ArrayList<tsb.dominio.interfaces.InterfaceDeConeccion>();
        for(int i=0;i<=23;i++) {
                 IP ip = new IP();
                 IP subNet= new IP();
                 MAC mac= new MAC("8A-CE-34-61-25-F9");
                 RJ45FastEthernet fe= new RJ45FastEthernet(false,1200,ip,subNet,true,true, mac);
                 this.interfaces.add(fe);
            }
    }
    public Switch(int x, int y, String nombreAMostrar, boolean estado,ArrayList<tsb.dominio.interfaces.InterfaceDeConeccion> interfaces) throws MACException
    {
        this.x=x;
        this.y=y;
        this.nombreAMostrar=nombreAMostrar;
        this.interfaces= interfaces;
        this.estado=estado;
        for(int i=0;i<=23;i++) {
                 IP ip = new IP();
                 IP subNet= new IP();
                 MAC mac= new MAC("8A-CE-34-61-25-F9");
                 RJ45FastEthernet fe= new RJ45FastEthernet(true,1200,ip,subNet,true,true, mac);
                 this.interfaces.add(fe);
            }
    }
    
    public Switch(int x, int y, String nombreAMostrar,ArrayList<tsb.dominio.interfaces.InterfaceDeConeccion> interfaces){
        this.x=x;
        this.y=y;
        this.nombreAMostrar=nombreAMostrar;
        this.interfaces= interfaces;
    }

    public String toString()
        {
            String cad= " --- Switch ---\n"+
                    "Nombre a Mostrar: " + this.nombreAMostrar + "\n"+
                    "Estado: " + this.estado + "\n"+
                    "Ubicacion: x=" + this.x + " y="+this.y+"\n";

            if(interfaces!=null)
            {
                Iterator iter= this.interfaces.iterator();
                    while(iter.hasNext())
                    {
                        InterfaceDeConeccion i = (InterfaceDeConeccion) iter.next();
                        cad=cad+i.toString();
                    }
            }


                    return cad;
        }

    public boolean getEstado()
    {
        return estado;
    }

}
